package com.library.books.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.library.books.domain.BookShelf;
import com.library.books.domain.dto.BookShelfGenerateDto;
import com.library.books.domain.vo.BookShelfJoinBooksJoinBooksCopy;
import com.library.books.domain.vo.BookShelfUsageVo;
import com.library.common.core.domain.AjaxResult;

/**
 * 书架Service接口
 *
 * @author hb
 * @date 2024-10-14
 */
public interface IBookShelfService extends IService<BookShelf>
{

    /**
     * 查询书架列表
     *
     * @param bookShelf 书架
     * @return 书架集合
     */
    List<BookShelf> selectBookShelfList(BookShelf bookShelf);

    /**
     * 书架树形结构查询列表
     *
     * @return 书架树形集合
     */
    List<BookShelf> findByParentId();

    /**
     * 新增多个书架
     *  - 以行列的方式快速新增书架
     * @param bookShelf 架子参数
     * @return 1
     */
    int addGrid(BookShelfGenerateDto bookShelf);

    /**
     * 删除架子数据
     * @param asList 删除的架子列表
     * @return 删除
     */
    int removeByShelfIds(List<Long> asList);

    /**
     * 查询整齐的架子列表
     */
    List<BookShelf> selectBookShelfTidyList(BookShelf bookShelf);

    /**
     * 获取书架书籍列表详细信息
     *  - 书架的全部书籍
     */
    List<BookShelfJoinBooksJoinBooksCopy> selectBookShelfJoinBooksJoinBooksCopyList(BookShelf bookShelf);

    /**
     * 查询书架书籍使用情况列表
     * @param bookShelf 参数
     * @return 书架书籍使用情况信息列表
     */

    List<BookShelfUsageVo> selectBookShelfUsageInfoList(BookShelf bookShelf);
}
